package me.sealer.algorithm.sort;

/**
 * Created by sealer on 17/02/26.
 */
public class Select {

    /**
     * 选择排序算法
     * 在未排序序列中找到最小元素，存放到排序序列的起始位置
     * 再从剩余未排序元素中继续寻找最小元素，然后放到排序序列末尾。
     * 以此类推，直到所有元素均排序完毕。
     *
     * @param numbers
     */
    public static void sort(int[] numbers) {
        int min;//最小元素的下标
        int temp;//临时变量
        int size = numbers.length;
        for (int i = 0; i < size; i++) {
            min = i;
            for (int j = i + 1; j < size; j++) {
                min = numbers[min] > numbers[j] ? j : min;//两者取其小
            }

            temp = numbers[min];
            numbers[min] = numbers[i];
            numbers[i] = temp;//把最小值换到 i 位置
        }
    }

}
